<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = [1, 5, 7, 3, 10, 2, 4];
        // 1. forEach() - 单纯遍历 - 无返回值
        arr.forEach(function (value, index) {
            console.log(index + "--" + value);
        })
        // 2. map() - 遍历 - 收集每次return结果 - 返回全新数组
        var result2Arr = arr.map(function (value, index) {
            return value + 1;
        })
        console.log(result2Arr);

        // 3. filter() - 过滤 - 收集每次return结果 - 返回全新数组
        var result3Arr = arr.filter(function (value, index) {
            return value >= 5;
        })
        console.log(result3Arr);

        // 4. reduce() - 累计运算 - 返回累计结果
        var result4 = arr.reduce(function (sum, value, index) {
            return sum + value;
        }, 0);
        console.log(result4);

        // 5. every() - 找到不符合条件的 - 直接返回false - 不继续执行
        var arr5 = [20, 21, 1, 18, 19, 23];
        var result5 = arr5.every(function (value, index) {
            return value > 18;
        })
        console.log(result5);

        // 6. some() - 找到符合条件的 - 直接返回true - 不继续执行
        var result6 = arr5.some(function (value, index) {
            return value < 18;
        })
        console.log(result6);

// 总结:
// map() - 循环 - 处理每个元素 - 返回新数组
// reduce() - 循环同时累积运算
// every() - 找到第一个不符合return后条件的, 找到就返回false
    </script>

</body>

</html>